<%--
  Created by IntelliJ IDEA.
  User: dllo
  Date: 18/5/16
  Time: 上午11:31
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Request</title>
</head>
<body>
request对象 封装了Http请求的所有信息,不分get还是post,<br>
用法和 servlet中的request没有什么区别<br>

<%
    String contextPath = request.getContextPath();
    String serverPath = request.getServletPath();

    out.println("<br>");
    out.println("contextPath:" + contextPath);
    out.println("<br>");
    out.println("serverPath:" + serverPath);
%>


java web中的路径:<br>
一条完整的 网站由以下基本分组成<br>
协议://ip地址:端口号/项目名称/各个servlet或jsp的配置路径<br><br>

例如:<br>
http://localhost:8080/Code0516/myup<br><br>

其中我们的项目名称可以为空,idea默认帮我们启动项目,<br>
项目名称就是空的,但是实际部署项目时,项目名称往往不为空<br>
因为一个服务器上就会跑一个Tomcat,当我们有多个项目需要运行时<br>
就需要使用项目名称来区分这个tomcat中的各个项目<br><br>

在我们平常使用路径的时候有两种写法<br>
1.绝对路径<br>
以 / 开头 真正访问的时候 会拼接到端口号后面<br>
2.相对路径<br>
以 非/ 开头,拼接的是相对于当前页面所处的路径<br><br>

例如:项目名称为ABC,要访问的页面地址是:<br>
http://localhost:8080/ABC/a/b/c/taget.jsp<br>
当前页面的地址是:<br>
http://localhost:8080/ABC/a/e/g/now.jsp<br><br>

使用绝对路径<br>
/ABC/a/b/c/target.jsp<br>
使用相对路径<br>
../../b/c/target.jsp<br><br>

综上可以看出 使用相对路径,不需要关心项目名称,<br>
但是对两个文件的位置要求比较严格,<br>
而绝对路径,则必须在前面加上项目名称,<br>
但是项目名称之后有可能更改<br><br>

解决办法 统一使用绝对路径,项目名称 使用<br>
request对象的 contextPath方法来动态获取<br><br>


</body>
</html>
